import 'package:flutter/foundation.dart';
import 'package:get/get.dart';

/// 协议页面控制器（通用H5展示）
/// 支持用户协议和隐私政策
class AgreementController extends GetxController {
  static const String tag = 'AgreementController';
  
  // 协议类型：user_agreement（用户协议）、privacy_policy（隐私政策）
  late String agreementType;
  
  // 协议标题
  late String pageTitle;
  
  // H5协议URL
  late String agreementUrl;
  
  // 基础URL
  static const String baseUrl = 'http://123.99.192.55:1801';
  
  // 加载状态
  var isLoading = true.obs;
  var loadProgress = 0.0.obs;
  var hasError = false.obs;
  var errorMessage = ''.obs;
  
  @override
  void onInit() {
    super.onInit();
    debugPrint('$tag: onInit');
    
    // 从路由参数获取协议类型
    agreementType = Get.parameters['type'] ?? 'user_agreement';
    
    // 根据类型设置标题和URL
    if (agreementType == 'privacy_policy') {
      pageTitle = '隐私政策';
      agreementUrl = '$baseUrl/api/login/appSite?type=2';
    } else {
      pageTitle = '用户协议';
      agreementUrl = '$baseUrl/api/login/appSite?type=10';
    }
    
    debugPrint('$tag: 协议类型 - $agreementType');
    debugPrint('$tag: 协议标题 - $pageTitle');
    debugPrint('$tag: 协议URL - $agreementUrl');
  }

  @override
  void onReady() {
    super.onReady();
    debugPrint('$tag: onReady');
    debugPrint('$tag: 开始加载协议H5页面');
  }
  
  /// WebView页面开始加载
  void onPageStarted(String url) {
    debugPrint('$tag: 页面开始加载 - $url');
    isLoading.value = true;
    hasError.value = false;
  }
  
  /// WebView页面加载完成
  void onPageFinished(String url) {
    debugPrint('$tag: 页面加载完成 - $url');
    isLoading.value = false;
  }
  
  /// WebView页面加载进度
  void onProgress(int progress) {
    loadProgress.value = progress / 100.0;
    update(['agreement']);
  }
  
  /// WebView页面加载错误
  void onWebResourceError(String error) {
    debugPrint('$tag: 页面加载错误 - $error');
    isLoading.value = false;
    hasError.value = true;
    errorMessage.value = error;
    update(['agreement']);
  }

  @override
  void onClose() {
    debugPrint('$tag: onClose');
    super.onClose();
  }
}

